// 登录日志控制层

package controller

import (
	"admin-go-api/api/entity"
	"admin-go-api/api/service"
	"github.com/gin-gonic/gin"
	"strconv"
)

// GetSysLoginInfoList 获取登录日志列表
// @Summary 获取登录日志列表
// @Description 获取登录日志列表
// @Produce json
// @tags loginInfo
// @Param pageSize query int false "每页数"
// @Param pageNum query int false "页码数"
// @Param username query string false "用户名"
// @Param loginStatus query string false "登录状态"
// @Param beginTime query string false "开始时间"
// @Param endTime query string false "结束时间"
// @Success 200 {object} result.Result
// @Router /api/sysLoginInfo/list [get]
// @Security ApiKeyAuth
func GetSysLoginInfoList(c *gin.Context) {
	pageSize, _ := strconv.Atoi(c.Query("pageSize"))
	pageNum, _ := strconv.Atoi(c.Query("pageNum"))
	username := c.Query("username")
	loginStatus := c.Query("loginStatus")
	beginTime := c.Query("beginTime")
	endTime := c.Query("endTime")
	service.SysLoginInfoService().GetSysLoginInfoList(c, pageSize, pageNum, username, loginStatus, beginTime, endTime)
}

// BatchDeleteSysLoginInfo 批量删除登录日志
// @Summary 批量删除登录日志
// @Description 批量删除登录日志
// @Produce json
// @tags loginInfo
// @Param data body entity.DelSysLoginInfoDto true "data"
// @Success 200 {object} result.Result
// @Router /api/sysLoginInfo/batch/delete [delete]
// @Security ApiKeyAuth
func BatchDeleteSysLoginInfo(c *gin.Context) {
	var dto entity.DelSysLoginInfoDto
	_ = c.BindJSON(&dto)
	service.SysLoginInfoService().BatchDeleteSysLoginInfo(c, dto)
}

// DeleteSysLoginInfoById 根据id删除登录日志
// @Summary 根据id删除登录日志
// @Description 根据id删除登录日志
// @Produce json
// @tags loginInfo
// @Param data body entity.SysLoginInfoIdDto true "data"
// @Success 200 {object} result.Result
// @Router /api/sysLoginInfo/delete [delete]
// @Security ApiKeyAuth
func DeleteSysLoginInfoById(c *gin.Context) {
	var dto entity.SysLoginInfoIdDto
	_ = c.BindJSON(&dto)
	service.SysLoginInfoService().DeleteSysLoginInfoById(c, dto)
}

// CleanSysLoginInfo 清空登录日志
// @Summary 清空登录日志
// @Description 清空登录日志
// @Produce json
// @tags loginInfo
// @Success 200 {object} result.Result
// @Router /api/sysLoginInfo/clean [delete]
// @Security ApiKeyAuth
func CleanSysLoginInfo(c *gin.Context) {
	service.SysLoginInfoService().CleanSysLoginInfo(c)
}
